Bar codes are graphical representations of data, images of decodable indicia, the most common of which are referred to as one dimensional (1D) and two dimensional (2D) bar codes. 1D bar codes are images that represent data by varying the widths and spacings of parallel lines. 2D bar codes are also images that represent data, but in addition to the parallel lines, or bars, a 2D bar code may contain rectangles, dots, hexagons and other geometric patterns in two dimensions. A common example of a 2D bar code is a Quick Response (QR) code. QR codes consist of black modules arranged in a square pattern on a white background. The data encoded in bar codes are interpreted by optical scanners and/or software.
Bar codes were first scanned by special optical scanners called bar code readers; later, scanners and interpretive software became available on devices, including desktop printers and smart phones. Today, devices considered bar code readers include, but are not limited to: pen-type readers, laser scanners, CCD readers, camera-based readers, omni-directional bar code scanners, and cell phone cameras.
Some of the leading manufacturers of mobile devices offer bar code scanning software that can be installed on their respective devices. The goal of this software is to allow consumers to use their mobile devices to scan bar codes that they encounter, including, but not limited to, those on products in stores or on advertisements for products and/or services located in media such as magazines and posted in public places, such as bus stops.
Rather than integrating a laser scanner into a mobile device, mobile device manufacturers rely on the camera in the device to capture the image before it is processed, i.e., decoded by the software installed on the phone or remotely accessible to the phone via a network connection.
Mobile terminals (e.g., encoded information reading (EIR) terminals configured to read bar codes and/or other types of encoded information) waste time and processing power transferring bar code scan data from their electronic circuitry to their processors. When multiple scan channels are decoded, both the hardware and the software utilized in this process present limitations.
After a bar code is scanned, especially when using a high speed bar code scanner, consisting of multiple scan channels, the signal processing is distributed over the whole system architecture. In this situation, pre-processing of the bar code is handled by the hardware. Before the processing can occur, the scanned data is read into a main processor for decoding.
The interface that reads the data into the processor that handles decoding in an EIR terminals, is used in parallel for other operations within the EIR terminal, such as accessing data or instruction memory. The multi-tasking of this interface reduces the rate at which the scanned data can be read into the processor.
Additionally, the processor only reads the data once a predetermined threshold of data has been reached. To determine whether there is enough data to commence processing, the processor polls the external device to collect the scanned data. The processor requires time to poll the external device constantly, which reduces the time available for decoding.
Finally, when sufficient data has accumulated to be read by the processor, the processor evaluates the data in order to find regions that appear to be the start and stop of a barcode. The processor searched through each piece of data to identify these regions which adds further overhead to the decoding process.
A need exists for a system and method to utilize the hardware in an EIR terminal efficiently when decoding bar coded data.